package model;

import java.io.Serializable;
import util.Converter;
import javax.persistence.*;
import dto.PacchettoPersonaleDTO;
import java.util.Date;
import java.util.List;


/**
 * The persistent class for the PacchettoPersonale database table.
 * 
 */
@Entity
@Table(name="PacchettoPersonale")
@NamedQuery(name="PacchettoPersonale.findAll", query="SELECT p FROM PacchettoPersonale p")
public class PacchettoPersonale implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private int idPacchettoPersonale;
	private String nome;
	@Temporal(TemporalType.DATE)
	private Date dataCreazione;
	private float totale;
	private String randomcode;
	@ManyToMany
	@JoinTable(
		name="ContenutoPacchettoPersonale"
		, joinColumns={
			@JoinColumn(name="idPacchettoPersonale", referencedColumnName="idPacchettoPersonale")
			}
		, inverseJoinColumns={
			@JoinColumn(name="idElementoBase", referencedColumnName="idElementoBase")
			}
		)
	private List<ElementoBase> elementi;
	
	public PacchettoPersonale() {
	}
	
	public PacchettoPersonale(PacchettoPersonaleDTO pack) {
		this.idPacchettoPersonale = pack.getIdPacchettoPersonale();
		this.nome = pack.getNome();
		this.dataCreazione = pack.getData();
		this.totale = pack.getTotale();
		this.elementi = Converter.convertElementiFromDTO(pack.getElementi());
		this.randomcode = pack.getRandomcode();
	}

	public int getIdPacchettoPersonale() {
		return this.idPacchettoPersonale;
	}

	public void setIdPacchettoPersonale(int idPacchettoPersonale) {
		this.idPacchettoPersonale = idPacchettoPersonale;
	}

	public Date getDataCreazione() {
		return this.dataCreazione;
	}

	public void setDataCreazione(Date dataCreazione) {
		this.dataCreazione = dataCreazione;
	}

	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public float getTotale() {
		return this.totale;
	}

	public void setTotale(float totale) {
		this.totale = totale;
	}

	public List<ElementoBase> getElementi() {
		return elementi;
	}

	public void setElementi(List<ElementoBase> elementi) {
		this.elementi = elementi;
	}

	public String getRandomcode() {
		return randomcode;
	}

	public void setRandomcode(String randomcode) {
		this.randomcode = randomcode;
	}
	
	

}